home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
forlib1.arc
/
KEYPGM.ASM
< prev
next >
Wrap
Assembly Source File
|
1986-01-15
|
2KB
|
79 lines
DATA SEGMENT PUBLIC 'DATA'
TITLE__ DB 'TITLE: DOS KEYBOARD INPUT ROUTINES FOR MS FORTRAN'
COPY_R DB ' (C) John R. Petrocelli'
DB ' Schenectady,NY '
DB ' 01/13/86 '
TO_MANY DB 0DH,0AH
DB 'BUFFERED KEYBOARD INPUT REQUEST OUT OF RANGE(1 TO 80 CHRS)'
DB 0DH,0AH,'$'
BUF_GET DB ?
BUF_IN DB ?
BUF_MSG DB 80 DUP(?)
BUF_MAX DB ?
DATA ENDS
DGROUP GROUP DATA
CODE SEGMENT 'CODE'
ASSUME CS:CODE,DS:DGROUP,SS:DGROUP
PUBLIC KEYBUF
KEYBUF PROC FAR
PUSH BP
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DS
MOV BP,SP
LES BX,DWORD PTR [BP+24]
MOV AL,BYTE PTR [BX]
CMP AL,80
JA BAD_BUF
CMP AL,0
JLE BAD_BUF
MOV BUF_GET,AL
LEA DX,BUF_GET
MOV AX,0A00H
INT 21H
LES BX,DWORD PTR [BP+20]
MOV CH,00
MOV CL,BUF_IN
MOV [BX],CX
LEA BX,BUF_MSG
MOV SI,BX
LES BX,DWORD PTR [BP+16]
MOV DI,BX
CLD
REPZ MOVSB
BYE_KEY:
POP DS
POP DX
POP CX
POP BX
POP AX
POP BP
RET 12
BAD_BUF:
LEA DX,TO_MANY
MOV AX,0900H
INT 21H
LES BX,DWORD PTR [BP+20]
MOV BYTE PTR [BX],-1
JMP BYE_KEY
KEYBUF ENDP
PUBLIC KEYIN
KEYIN PROC FAR
PUSH BP
PUSH AX
PUSH BX
MOV BP,SP
MOV AX,0C07H
INT 21H
LES BX,DWORD PTR [BP+10]
MOV [BX],AL
POP BX
POP AX
POP BP
RET 4
KEYIN ENDP
CODE ENDS
END